// pages/me/me.js
Page({

  /**
   * 页面的初始数据
   */
  data: {
    isLogin:false,
    src:'',
    nickName:'',
    openid:''
  },
  // 点击 "发布商品" 触发的事件处理函数
  async onUpload() {
    const that = this;
    try {
      const res = await wx.chooseImage({
        count: 1, // 选择图片的数量，1 表示选择一张图片
      });
      console.log('选择的图片路径:', res.tempFilePaths);

      // 调用上传文件方法
      const result = await that.uploadFile(res.tempFilePaths[0], 'uploads/item.png', function(progress) {
        console.log(`上传进度：${progress.progress}%`);
        // 可以根据上传进度执行一些操作，例如显示进度条
      });

      console.log('上传成功，文件ID:', result);
      wx.showToast({
        title: '上传成功',
        icon: 'success',
        duration: 2000
      });
    } catch (error) {
      console.error('图片选择或上传失败:', error);
      wx.showToast({
        title: '上传失败',
        icon: 'none',
        duration: 2000
      });
    }
  },
  // 上传文件到微信云托管对象存储
  uploadFile(filePath, cloudPath, onProgress = () => {}) {
    return new Promise((resolve, reject) => {
      const uploadTask = wx.cloud.uploadFile({
        cloudPath: cloudPath,
        filePath: filePath,
        config: {
          env: 'mq-1gfk0se0b3fa0d60' // 这里替换为你自己的云环境ID
        },
        success: res => {
          resolve(res.fileID);
        },
        fail: error => {
          reject(error);
        }
      });

      // 监听上传进度
      uploadTask.onProgressUpdate((progress) => {
        onProgress(progress);
      });
    });
  },
  //获取微信用户信息
  getMyInfo:function(e){
    console.log(e.detail.userInfo);
    let info = e.detail.userInfo;
    this.setData({
      isLogin:true,
      src:info.avatarUrl,
      nickName:info.nickName
    })
  },

   // 获取微信用户信息并保存登录状态到云数据库
   getMyInfo: function(e) {
    const that = this;
    wx.getUserProfile({
      desc: '用于展示个人信息',  // 获取用户信息的用途
      success: async (res) => {
        const userInfo = res.userInfo;
        console.log('获取的用户信息：', userInfo);

        // 获取用户的 openid
        const openidRes = await wx.cloud.callFunction({
          name: 'getUserInfo'  // 云函数返回 openid
        });
        const openid = openidRes.result.openid;
        console.log('用户的 openid:', openid);

        // 更新页面数据
        that.setData({
          isLogin: true,
          src: userInfo.avatarUrl,
          nickName: userInfo.nickName,
          openid: openid
        });
        const app = getApp();
        app.globalData.userInfo=openid;

        // 将用户信息保存到云数据库
        const db = wx.cloud.database();
        const usersCollection = db.collection('users');

        // 检查数据库中是否已经存在该用户
        const existingUser = await usersCollection.where({
          _openid: openid
        }).get();

        if (existingUser.data.length === 0) {
          // 如果不存在该用户，则添加用户信息
          await usersCollection.add({
            data: {
              avatarUrl: userInfo.avatarUrl,
              nickName: userInfo.nickName,
              gender: userInfo.gender,
              country: userInfo.country,
              province: userInfo.province,
              city: userInfo.city
            }
          });
          console.log('用户信息已保存到数据库');
        } else {
          console.log('用户信息已存在');
        }

        // 将用户信息保存到本地存储
        wx.setStorageSync('userInfo', userInfo);
        wx.setStorageSync('isLogin', true);  // 保存登录状态
      },
      fail: (err) => {
        console.error('获取用户信息失败', err);
      }
    });
  },

  // 检查本地存储的登录状态
  checkLoginStatus: function() {
    const isLogin = wx.getStorageSync('isLogin');
    const userInfo = wx.getStorageSync('userInfo');
    if (isLogin && userInfo) {
      // 更新页面数据
      this.setData({
        isLogin: true,
        src: userInfo.avatarUrl,
        nickName: userInfo.nickName
      });
    }
  },
  //退出登录
  logout: function() {
    wx.showModal({
      title: '退出登录',
      content: '确定要退出登录吗？',
      success: (res) => {
        if (res.confirm) {
          // 清除本地存储的登录状态和用户信息
          wx.removeStorageSync('userInfo');
          wx.removeStorageSync('isLogin');

          // 更新页面数据，重置为未登录状态
          this.setData({
            isLogin: false,
            src: '',
            nickName: '',
            openid: ''
          });

          wx.showToast({
            title: '已退出登录',
            icon: 'success'
          });
        }
      }
    });
  },
  //页面跳转
  fabuye:function(e){
    wx.navigateTo({
      url: '../upload/upload',
    })
  },
  wofabu:function(e){
    wx.navigateTo({
      url: '../myUpload/myUpload',
    })
  },
  feedback:function(e){
    wx.navigateTo({
      url: '../feedback/feedback',
    })
  },
  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {
    this.checkLoginStatus();
    // let products = [{name: "12345"}]
    // let products2 = products.filter((i) => {
    //   return i.name
    // })
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {

  }
})